//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
vs_4_0
dcl_immediateConstantBuffer { { 0.772968, -0.222156, 0.528241, -0.802848},
                              { 0.262963, -0.075235, 0.823705, -0.556188},
                              { 0.569683, 0.121086, 0.398884, -0.411417},
                              { 0.440016, 0.487990, -0.034640, 0.176342},
                              { -0.120323, -0.586049, 0.200466, -0.687419},
                              { -0.258614, -0.163080, -0.688321, -0.635556},
                              { -0.345086, -0.848096, -0.362813, 0.614420},
                              { 0.061750, 0.506920, 0.977316, 0.208662},
                              { 0.789433, 0.490265, -0.702313, -0.071461},
                              { -0.495341, 0.233821, 0.179311, 0.962585},
                              { -0.930975, -0.327397, -0.912985, 0.241697},
                              { -0.217266, 0.972708, -0.697119, 0.529669} }
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_constantbuffer cb3[53], immediateIndexed
dcl_constantbuffer cb5[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input v0.xyz
dcl_input v1.xyzw
dcl_input v2.xy
dcl_input v3.xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyz
dcl_temps 4
mul r0.xyz, v3.yyyy, cb1[9].xywx
mad r0.xyz, v3.xxxx, cb1[8].xywx, r0.xyzx
mad r0.xyz, v3.zzzz, cb1[10].xywx, r0.xyzx
add r0.xyz, r0.xyzx, cb1[11].xywx
div r0.w, l(1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000), r0.z
mul r0.xy, r0.wwww, r0.xyxx
mad r1.xy, r0.xyxx, l(5.000000e-001, -5.000000e-001, 0.000000e+000, 0.000000e+000), l(5.000000e-001, 5.000000e-001, 0.000000e+000, 0.000000e+000)
sample_l r1.xyzw, r1.xyxx, t0.xyzw, s0, l(0.000000e+000)
ge r1.x, r1.x, r0.z
if_nz r1.x
  mul r1.xy, v0.yyyy, cb1[9].xyxx
  mad r1.xy, v0.xxxx, cb1[8].xyxx, r1.xyxx
  mad r1.xy, v0.zzzz, cb1[10].xyxx, r1.xyxx
  add r1.xy, r1.xyxx, cb1[11].xyxx
  mad r1.xy, r1.xyxx, r0.wwww, -r0.xyxx
  dp2 r0.w, r1.xyxx, r1.xyxx
  sqrt r0.w, r0.w
  mul r0.w, r0.w, cb5[2].x
  dp2 r1.x, cb5[2].yyyy, cb2[15].zzzz
  min r0.w, r0.w, r1.x
  mov r1.xy, l(0,0,0,0)
  loop 
    ige r1.z, r1.y, l(12)
    breakc_nz r1.z
    mad r2.xyzw, icb[r1.y + 0].xyzw, r0.wwww, r0.xyxy
    mad r2.xyzw, r2.xyzw, l(5.000000e-001, -5.000000e-001, 5.000000e-001, -5.000000e-001), l(5.000000e-001, 5.000000e-001, 5.000000e-001, 5.000000e-001)
    sample_l r3.xyzw, r2.xyxx, t0.xyzw, s0, l(0.000000e+000)
    ge r1.z, r3.x, r0.z
    and r1.z, r1.z, l(0x3f800000)
    add r1.z, r1.z, r1.x
    sample_l r2.xyzw, r2.zwzz, t0.xyzw, s0, l(0.000000e+000)
    ge r1.w, r2.x, r0.z
    and r1.w, r1.w, l(0x3f800000)
    add r1.x, r1.w, r1.z
    iadd r1.y, r1.y, l(1)
  endloop 
else 
  mov r1.x, l(0)
endif 
mul r0.z, r1.x, l(4.166667e-002)
add r0.w, -cb5[1].x, l(1.000100e+000)
div r0.w, l(1.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000), r0.w
add_sat r0.xy, |r0.xyxx|, -cb5[1].xxxx
max r0.x, r0.y, r0.x
mul_sat r0.x, r0.w, r0.x
add r0.x, -r0.x, l(1.000000e+000)
mul r0.xz, r0.xxzx, r0.xxzx
mul r0.x, r0.x, r0.z
lt r0.y, l(0.000000e+000), r0.x
movc r0.yzw, r0.yyyy, v0.xxyz, v3.xxyz
mul r1.xyzw, r0.zzzz, cb1[9].xyzw
mad r1.xyzw, r0.yyyy, cb1[8].xyzw, r1.xyzw
mad r1.xyzw, r0.wwww, cb1[10].xyzw, r1.xyzw
add o0.xyzw, r1.xyzw, cb1[11].xyzw
mul r0.xyz, r0.xxxx, v1.xyzx
mul r0.xyz, r0.xyzx, v2.yyyy
add r1.xyz, v0.xyzx, -cb1[15].xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
sqrt r0.w, r0.w
add r1.x, r0.w, -cb3[50].x
max r1.x, r1.x, l(0.000000e+000)
div r0.w, r1.x, r0.w
mul r0.w, r0.w, r1.z
mul r1.y, r0.w, cb3[52].z
lt r0.w, l(1.000000e-002), |r0.w|
mul r1.z, r1.y, l(-1.442695e+000)
exp r1.z, r1.z
add r1.z, -r1.z, l(1.000000e+000)
div r1.y, r1.z, r1.y
movc r0.w, r0.w, r1.y, l(1.000000)
mul r1.y, r1.x, cb3[51].w
mul r0.w, r0.w, r1.y
min r0.w, r0.w, l(1.000000e+000)
mul r0.w, r0.w, l(1.442695e+000)
exp r0.w, r0.w
min r0.w, r0.w, l(1.000000e+000)
add r0.w, -r0.w, l(1.000000e+000)
mul r1.y, r0.w, cb3[52].y
mad r0.w, -r0.w, cb3[52].y, l(1.000000e+000)
mul r0.w, r0.w, cb3[51].y
add r1.x, r1.x, -cb3[52].x
max r1.x, r1.x, l(0.000000e+000)
mul r1.x, r1.x, cb3[51].x
mul r1.x, r1.x, l(1.442695e+000)
exp r1.x, r1.x
add r1.x, -r1.x, l(1.000000e+000)
mad_sat r0.w, r0.w, r1.x, r1.y
add r0.w, -r0.w, l(1.000000e+000)
mul r0.xyz, r0.xyzx, l(2.000000e-002,2.000000e-002,2.000000e-002,0.000000e-000)
mul o2.xyz, r0.wwww, r0.xyzx
mov o1.x, v2.x
mov o1.y, v1.w
ret